import 'package:timezone/data/latest.dart' as tz;
import 'package:timezone/timezone.dart' as tz;
import 'package:intl/intl.dart';

void main() {
  // 初始化时区数据
  tz.initializeTimeZones();

  // 获取当前时间
  final now = DateTime.now();

  // 中国时区（Asia/Shanghai）
  final chinaLocation = tz.getLocation('Asia/Shanghai');
  final chinaTime = tz.TZDateTime.from(now, chinaLocation);
  print('中国时间: ${DateFormat('yyyy-MM-dd HH:mm:ss').format(chinaTime)}');

  // 美洲的一个时区（America/New_York）
  final usaLocation = tz.getLocation('America/New_York');
  final usaTime = tz.TZDateTime.from(now, usaLocation);
  print('美国（纽约）时间: ${DateFormat('yyyy-MM-dd HH:mm:ss').format(usaTime)}');

  // 非洲的一个时区（Africa/Cairo）
  final africaLocation = tz.getLocation('Africa/Cairo');
  final africaTime = tz.TZDateTime.from(now, africaLocation);
  print('非洲（开罗）时间: ${DateFormat('yyyy-MM-dd HH:mm:ss').format(africaTime)}');

  // 英国的时间（Europe/London）
  final ukLocation = tz.getLocation('Europe/London');
  final ukTime = tz.TZDateTime.from(now, ukLocation);
  print('英国（伦敦）时间: ${DateFormat('yyyy-MM-dd HH:mm:ss').format(ukTime)}');

  // UTC 时间
  final utcTime = tz.TZDateTime.utc(now.year, now.month, now.day, now.hour, now.minute, now.second);
  print('UTC 时间: ${DateFormat('yyyy-MM-dd HH:mm:ss').format(utcTime)}');

  // 在 UTC 时间上进行天数偏移计算（偏移 1 天）
  final offsetUtcTime = utcTime.add(const Duration(days: 1));
  print('偏移 1 天后的 UTC 时间: ${DateFormat('yyyy-MM-dd HH:mm:ss').format(offsetUtcTime)}');
}